#ifndef SIN_FIT_2_H_
#define SIN_FIT_2_H_


#include <gsl/gsl_vector.h>
#include <gsl/gsl_matrix.h>

struct Data
{
    size_t n;
    double * y;
    double * sigma;
};

// Calculate the model. Y = a * sin(x + b) + c;
int sin_f(const gsl_vector * x, void * data, gsl_vector * f);

// Jacobian of the model.
int sin_df(const gsl_vector * x, void * data, gsl_matrix * J);

int sin_fdf(const gsl_vector * x, void * data, gsl_vector * f, gsl_matrix * J);

#endif // SIN_FIT_2_H_
